import requests
import hashlib  # 哈希


def make_md5(text):
    """
    Md5加密 只能加密字符串
    :param text:  需要加密的内容，必须是个字符串
    :return:
    """
    m = hashlib.md5()  # 创建一个 md5加密工具
    m.update(str(text).encode(encoding='utf-8'))
    res = m.hexdigest()  # 生成加密后的内容
    return res


s = requests.session()  # 创建会话

url = 'http://114.132.200.42:3456/user/login'
data = {
    "username": "python001",
    "password": make_md5('admin123'),
    "checkcode": "1234"
}


res = s.post(url=url, json=data)  # 发送请求
# print( res.json() )
# print( res.status_code )
result = res.json()
print(result)
# 拿到用户id与token
getuserid = result['userId']
getuserToken = result['userToken']

# 创建任务
CreateUrl = 'http://114.132.200.42:3456/task/info'
mydata = {"title": "我的任务010203"}
# 头部信息 同样也以字典的形式 存储
hd = {"userId": getuserid, "userToken": getuserToken}

# 以json的形式发送请求参数，主需要将参数名 data 改为 json
# get请求无法以json的形式发送!!!!!!!
res = s.post(url=CreateUrl, json=mydata, headers=hd)  # headers 参数 表示 头部信息
result = res.json()

# 查询任务  Get请求
GetUrl = 'http://114.132.200.42:3456/task/info'
mydata = {"status": "0"}
res = s.get(url=GetUrl, headers=hd, params=mydata)  # get请求 params 参数 表示 请求数据
print(res.json())

# 文件上传
imgUrl = 'http://114.132.200.42:3456/user/uploal_action'
# ('参数名', ('文件名',open('文件路径','rb') ) )
myimg = [
    ('pic', ('gtl.png',open('gtl.png','rb') ) )
]
res = s.post(url=imgUrl,headers=hd,files=myimg) # 关于文件上传的接口 files 表示
print(res.json())